Overview

Salmon leaping at Willamette Falls from NOAA’s Historic Fisheries Collection. Unknown photographer, 27 June 1950.

Hydroelectric power represents an important renewable and low-emissions energy source, but the construction and development of the water source that the power plants can require sometimes threatens resident fish populations. Willamette Falls, located outside of Portland in northwestern Oregon (see map below), is an important traditional Native American fishing ground. To protect this natural resource and aid the passage of salmon and steelhead runs over the falls, fishways have been constructed and updated over time. Daily fish counts are monitored to ensure that migration of these fish populations continues to be unhindered by the power plant and the falls. This report summarizes findings from studying Willamette Falls monitoring data from 2001 to 2010.

Data were shared by and accessed from Columbia River DART:
Columbia River DART (Data Access in Real Time), Columbia Basin Research, University of Washington
Accessed Feb 1, 2021 at http://www.cbr.washington.edu/dart/query/adult_graph_text.

world <- ne_countries(scale = "medium", returnclass = "sf") # pull world data
states <- st_as_sf(map("state", plot = FALSE, fill = TRUE)) # pull state data
states <- cbind(states, st_coordinates(st_centroid(states))) # project

falls <- data.frame(longitude = c(-122.61763), latitude = c(45.35239)) %>% # make point
  st_as_sf(coords = c("longitude", "latitude"), # as sf
           crs = 4326, agr = "constant")

ggplot(data = world) + # plot
  geom_sf(fill = "antiquewhite") +
  geom_sf(data = states, fill = "peachpuff3") + # add state outlines and fill
  geom_sf(data = falls, size = 4, shape = 23, fill = "royalblue3") + # add falls loc
  coord_sf(xlim = c(-125, -110), ylim = c(40, 50), expand = FALSE) + # set bounding
  theme_minimal() + # minimal theme
  labs(title = "Willamette Falls location", # add labs
       subtitle = "2001 - 2010",
       caption = "Bri Baker, 2021")

willamette_salmon <- read_csv(here("data", "willamette_fish_passage.csv")) %>%  # read in data
  clean_names() %>% # names in tidy format
  select(date, coho, jack_coho, steelhead) %>% # select desired species
  mutate(date = mdy(date)) %>%  # make date class
   as_tsibble(key = NULL, index = date) # convert to tsibble

salmon_longer <- willamette_salmon %>%  
  replace(is.na(.), 0) %>%  # replace na with 0
  pivot_longer(coho:steelhead, # consolidate species to one column
               names_to = "species",
               values_to = "counts") 

Original time series

salmon_longer <- willamette_salmon %>%  
  replace(is.na(.), 0) %>%  # replace na with 0
  rename(Coho = coho,
         "Jack Coho" = jack_coho,
         Steelhead = steelhead) %>% 
  pivot_longer(Coho:Steelhead, # consolidate species to one column
               names_to = "species",
               values_to = "counts")

ggplot(salmon_longer, aes(x = date, y = counts, color = species)) + # make ggplot
  geom_line() + #as a lineplot
  labs(x = "Year", # add labs
       y = "Count",
       title = "Salmon counts at Willamette Falls fish passage",
       subtitle = "2001 - 2010",
       caption = "Bri Baker, 2021\nSource: Columbia River DART",
       color = "Species") +
  scale_color_manual(#labels = c("Coho", "Jack Coho", "Steelhead"), # change legend names
                     values = c("aquamarine3", "cornflowerblue", "goldenrod1")) + # change colors
  scale_x_date(date_breaks = "1 year", # show all years
               date_labels = "%Y") +
  theme_minimal() + # use theme_minimal
  theme(legend.position = c(0.15, 0.75), # move legend
        legend.background = element_rect(fill="white", linetype = "solid", color = "whitesmoke"), # format legend
        axis.text.x = element_text(angle = 30, vjust = 1, hjust = 1)) # angle x labels

Takeaways

  • The most apparent pattern in the data is seasonality on an annual basis, with peak sightings occurring mid-year(?).
  • The bulk of Steelhead movement occurs earlier in the year than that of Coho and Jack Coho.
  • Coho increased in abundance over the time studied, particularly in 2009 and 2010.

Seasonplots

salmon_season <- salmon_longer %>% 
  index_by(yy_mm = ~yearmonth(.)) %>% 
  group_by(species) %>% 
  summarize(monthly_mean_counts = mean(counts, na.rm = TRUE)) # get monthly averages by species

salmon_season %>% 
  gg_season(monthly_mean_counts) +
  scale_color_gradientn(colours = topo.colors(10)) + 
  labs(title = "Mean Seasonal Salmon Counts at Willamette Falls Fish Passage",
       y = "Average Counts",
       x = "",
       subtitle = "2001 - 2010",
       caption = "Jaleise Hall, 2021\nSource: Columbia River DART") +
  theme_minimal() +
  theme(legend.position = "none") # if we can fix the legend output, then we can add the legend back in
**Figure 2.** This plot shows the monthly averaged seasonal salmon counts for each of the salmon species observed at Willamette Falls Fish. Colored lines represent the different years of observation between 2001 - 2010.

Figure 2. This plot shows the monthly averaged seasonal salmon counts for each of the salmon species observed at Willamette Falls Fish. Colored lines represent the different years of observation between 2001 - 2010.

salmon_season %>% 
  gg_subseries(monthly_mean_counts) +
  labs(title = "Mean Montly Seasonal Salmon Counts at Willamette Falls Fish \n Passage",
       y = "",
       x = "",
       subtitle = "2001 - 2010",
       caption = "Jaleise Hall, 2021\nSource: Columbia River DART") +
  scale_x_yearmonth(date_labels = "20%y", # %y only add the last two digits of the year. 
                  date_breaks = "3 years") # show every 3 years to look cleaner
**Figure 3.** The plot takes the monthly averaged seasonal salmon counts and separates them by month to see any individual trends occuring for a single month by the corresponding species.

Figure 3. The plot takes the monthly averaged seasonal salmon counts and separates them by month to see any individual trends occuring for a single month by the corresponding species.

  #NOTE: I did not add theme_minimal() to the subseries plot as it makes the plot look a bit messy in my opinion

Takeaways

  • Steelheads are observed year round with lower occurrences between July and December months. Jack Coho and Coho salmon are really only seen between August and November.
  • There seems to be a decreasing trend in Steelhead abundance from 2001 - 2010. There is increased abundance of Jack Coho and Coho salmon, however, the changes in abundance between the two species seems random as oppose to following a clear trend.
  • Average peak counts of salmon are much higher for Steelhead and Coho than for Jack Coho.

Annual counts by species

# Using Bri's "pivot_longer-ed" df:
annual <- salmon_longer %>%
  group_by_key() %>% # group by sp
  index_by(yr = ~year(.)) %>% # index by year
  summarize(annual_count = sum(counts)) %>% # sum counts by year and species
  mutate(yr = as.Date(ISOdate(yr, 1, 1)))

species_labs <- c("Coho", "Jack Coho", "Steelhead") # capitalize
# Using Bri's graph formatting:
ggplot(data = annual, aes(x = yr, y = annual_count, color = species)) +
  geom_line(size=1.25) +
  labs(x = "Year",
       y = "Count",
       title = "Salmon counts at Willamette Falls fish passage by year",
       subtitle = "2001 - 2010",
       caption = "Minnie Ringland, 2021\nSource: Columbia River DART") +
  scale_color_manual(values = c("aquamarine3", "cornflowerblue", "goldenrod1")) + # change colors
  #scale_x_discrete(breaks = 2001:2011) +
  scale_x_date(date_breaks = "1 year", # show all years #
   date_labels = "%Y") +
  theme_minimal() + # use theme_minimal
  theme(legend.position = "none", # faceted so no legend
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) + # angle x labels
  facet_wrap(~species)

             #labeller = labeller(species = species_labs))

Takeaways

  • As seen in the original time series, Steelhead were sighted in greater numbers than the two Coho species across almost the entire study period, suggesting that the population is more abundant or that these fish are easier to count.
  • Once we collapse the data by year, there do not appear to be any patterns in terms of cyclicality or trends common across species.
  • Within species though, Steelhead populations appear to be trending down, while Coho fish were seen in greater abundance over time, particularly in the last two years of the study period, which could suggest a population increase. Jack Coho fish seem to be present in very low numbers with no change over time, which could be cause for concern.